package com.spark.invoicings.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;

/**
 * 客户对账表
 * 
 * @author sunyan
 * @email sunyan@gmail.com
 * @date 2024-06-13 11:16:27
 */
@Data
@TableName("t_finance_customer_statement")
public class CustomerStatement implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 客户对账ID
	 */
	@TableId(type = IdType.AUTO)
	private Integer customerStatementId;
	/**
	 * 客户账单编号
	 */
	private String billNumber;
	/**
	 * 客户ID
	 */
	private Long customerId;
	/**
	 * 对账起始日
	 */
	private Date startDate;
	/**
	 * 对账终止日
	 */
	private Date endDate;
	/**
	 * 对账人
	 */
	private String statementPerson;
	/**
	 * 账单创建日期
	 */
	private Date billCreationDate;
	/**
	 * 备注
	 */
	private String remark;
	/**
	 * 本期应收金额
	 */
	private double currentReceivableAmount;
	/**
	 * 本期已收金额
	 */
	private double currentReceivedAmount;
	/**
	 * 本期待收金额
	 */
	private double currentPendingAmount;

	/**
	 * 审批人
	 * */
	private String approver;
	/**
	 * 审批时间
	 * */
	private String approvalTime;

	/**
	 * 客户对账单明细关联对象
	 * */
	@TableField(exist = false)
	private List<CustomerStatementDetail> customerStatementDetails;

	/**
	 * 客户关联对象
	 * */
	@TableField(exist = false)
	private SaleCustomer saleCustomer;

	public Integer getCustomerStatementId() {
		return customerStatementId;
	}

	public String getApprover() {
		return approver;
	}

	public void setApprover(String approver) {
		this.approver = approver;
	}

	public String getApprovalTime() {
		return approvalTime;
	}

	public void setApprovalTime(String approvalTime) {
		this.approvalTime = approvalTime;
	}

	public void setCustomerStatementId(Integer customerStatementId) {
		this.customerStatementId = customerStatementId;
	}

	public String getBillNumber() {
		return billNumber;
	}

	public void setBillNumber(String billNumber) {
		this.billNumber = billNumber;
	}

	public Long getCustomerId() {
		return customerId;
	}

	public void setCustomerId(Long customerId) {
		this.customerId = customerId;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public String getStatementPerson() {
		return statementPerson;
	}

	public void setStatementPerson(String statementPerson) {
		this.statementPerson = statementPerson;
	}

	public Date getBillCreationDate() {
		return billCreationDate;
	}

	public void setBillCreationDate(Date billCreationDate) {
		this.billCreationDate = billCreationDate;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public double getCurrentReceivableAmount() {
		return currentReceivableAmount;
	}

	public void setCurrentReceivableAmount(double currentReceivableAmount) {
		this.currentReceivableAmount = currentReceivableAmount;
	}

	public double getCurrentReceivedAmount() {
		return currentReceivedAmount;
	}

	public void setCurrentReceivedAmount(double currentReceivedAmount) {
		this.currentReceivedAmount = currentReceivedAmount;
	}

	public double getCurrentPendingAmount() {
		return currentPendingAmount;
	}

	public void setCurrentPendingAmount(double currentPendingAmount) {
		this.currentPendingAmount = currentPendingAmount;
	}

	public List<CustomerStatementDetail> getCustomerStatementDetails() {
		return customerStatementDetails;
	}

	public void setCustomerStatementDetails(List<CustomerStatementDetail> customerStatementDetails) {
		this.customerStatementDetails = customerStatementDetails;
	}

	public SaleCustomer getSaleCustomer() {
		return saleCustomer;
	}

	public void setSaleCustomer(SaleCustomer saleCustomer) {
		this.saleCustomer = saleCustomer;
	}
}
